home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / dgghrd.z / dgghrd
Text File  |  1996-03-14  |  5KB  |  133 lines

  1.  
  2.  
  3.  
  4. DDDDGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          DDDDGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      DGGHRD - reduce a pair of real matrices (A,B) to generalized upper
  10.      Hessenberg form using orthogonal transformations, where A is a general
  11.      matrix and B is upper triangular
  12.  
  13. SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  14.      SUBROUTINE DGGHRD( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z,
  15.                         LDZ, INFO )
  16.  
  17.          CHARACTER      COMPQ, COMPZ
  18.  
  19.          INTEGER        IHI, ILO, INFO, LDA, LDB, LDQ, LDZ, N
  20.  
  21.          DOUBLE         PRECISION A( LDA, * ), B( LDB, * ), Q( LDQ, * ), Z(
  22.                         LDZ, * )
  23.  
  24. PPPPUUUURRRRPPPPOOOOSSSSEEEE
  25.      DGGHRD reduces a pair of real matrices (A,B) to generalized upper
  26.      Hessenberg form using orthogonal transformations, where A is a general
  27.      matrix and B is upper triangular:  Q' * A * Z = H and Q' * B * Z = T,
  28.      where H is upper Hessenberg, T is upper triangular, and Q and Z are
  29.      orthogonal, and ' means transpose.
  30.  
  31.      The orthogonal matrices Q and Z are determined as products of Givens
  32.      rotations.  They may either be formed explicitly, or they may be
  33.      postmultiplied into input matrices Q1 and Z1, so that
  34.  
  35.           Q1 * A * Z1' = (Q1*Q) * H * (Z1*Z)'
  36.           Q1 * B * Z1' = (Q1*Q) * T * (Z1*Z)'
  37.  
  38.  
  39. AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
  40.      COMPQ   (input) CHARACTER*1
  41.              = 'N': do not compute Q;
  42.              = 'I': Q is initialized to the unit matrix, and the orthogonal
  43.              matrix Q is returned; = 'V': Q must contain an orthogonal matrix
  44.              Q1 on entry, and the product Q1*Q is returned.
  45.  
  46.      COMPZ   (input) CHARACTER*1
  47.              = 'N': do not compute Z;
  48.              = 'I': Z is initialized to the unit matrix, and the orthogonal
  49.              matrix Z is returned; = 'V': Z must contain an orthogonal matrix
  50.              Z1 on entry, and the product Z1*Z is returned.
  51.  
  52.      N       (input) INTEGER
  53.              The order of the matrices A and B.  N >= 0.
  54.  
  55.      ILO     (input) INTEGER
  56.              IHI     (input) INTEGER It is assumed that A is already upper
  57.              triangular in rows and columns 1:ILO-1 and IHI+1:N.  ILO and IHI
  58.              are normally set by a previous call to DGGBAL; otherwise they
  59.              should be set to 1 and N respectively.  1 <= ILO <= IHI <= N, if
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. DDDDGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))                                                          DDDDGGGGGGGGHHHHRRRRDDDD((((3333FFFF))))
  71.  
  72.  
  73.  
  74.              N > 0; ILO=1 and IHI=0, if N=0.
  75.  
  76.      A       (input/output) DOUBLE PRECISION array, dimension (LDA, N)
  77.              On entry, the N-by-N general matrix to be reduced.  On exit, the
  78.              upper triangle and the first subdiagonal of A are overwritten
  79.              with the upper Hessenberg matrix H, and the rest is set to zero.
  80.  
  81.      LDA     (input) INTEGER
  82.              The leading dimension of the array A.  LDA >= max(1,N).
  83.  
  84.      B       (input/output) DOUBLE PRECISION array, dimension (LDB, N)
  85.              On entry, the N-by-N upper triangular matrix B.  On exit, the
  86.              upper triangular matrix T = Q' B Z.  The elements below the
  87.              diagonal are set to zero.
  88.  
  89.      LDB     (input) INTEGER
  90.              The leading dimension of the array B.  LDB >= max(1,N).
  91.  
  92.      Q       (input/output) DOUBLE PRECISION array, dimension (LDQ, N)
  93.              If COMPQ='N':  Q is not referenced.
  94.              If COMPQ='I':  on entry, Q need not be set, and on exit it
  95.              contains the orthogonal matrix Q, where Q' is the product of the
  96.              Givens transformations which are applied to A and B on the left.
  97.              If COMPQ='V':  on entry, Q must contain an orthogonal matrix Q1,
  98.              and on exit this is overwritten by Q1*Q.
  99.  
  100.      LDQ     (input) INTEGER
  101.              The leading dimension of the array Q.  LDQ >= N if COMPQ='V' or
  102.              'I'; LDQ >= 1 otherwise.
  103.  
  104.      Z       (input/output) DOUBLE PRECISION array, dimension (LDZ, N)
  105.              If COMPZ='N':  Z is not referenced.
  106.              If COMPZ='I':  on entry, Z need not be set, and on exit it
  107.              contains the orthogonal matrix Z, which is the product of the
  108.              Givens transformations which are applied to A and B on the right.
  109.              If COMPZ='V':  on entry, Z must contain an orthogonal matrix Z1,
  110.              and on exit this is overwritten by Z1*Z.
  111.  
  112.      LDZ     (input) INTEGER
  113.              The leading dimension of the array Z.  LDZ >= N if COMPZ='V' or
  114.              'I'; LDZ >= 1 otherwise.
  115.  
  116.      INFO    (output) INTEGER
  117.              = 0:  successful exit.
  118.              < 0:  if INFO = -i, the i-th argument had an illegal value.
  119.  
  120. FFFFUUUURRRRTTTTHHHHEEEERRRR DDDDEEEETTTTAAAAIIIILLLLSSSS
  121.      This routine reduces A to Hessenberg and B to triangular form by an
  122.      unblocked reduction, as described in _Matrix_Computations_, by Golub and
  123.      Van Loan (Johns Hopkins Press.)
  124.  
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.